
#pragma once

template<class T>
class var3
      {
      public:
      union { T x; T u; T r; T i1; };
      union { T y; T v; T g; T i2; };
      union { T z; T w; T b; T i3; };
      
      var3(void);                         // Konstruktor
      var3(T x, T y, T z);		          //

      var3& operator-=(const var3 &b); 
      var3& operator+=(const var3 &b);  
      var3& operator*=(T b);
	  
      var3 operator+(var3 b) const;
      var3 operator-(var3 b) const;
      
      var3& normalize(void);		      // Dokonuje normalizacji wektora
      double length(void) const;
      };

#include "core/var3.inl"

